const fs = require('fs');

// 文件路径
let filePath = 'example.txt';
//1.1、 写文件
/*
const content = 'Hello, Node.js 文件写入示例！';
fs.writeFile(filePath, content, (err) => {
    if (err) {
        return console.error('写入文件时发生错误：', err);
    }
    console.log('文件写入成功！');
});

//1.2、追加写入文件
const additionalContent = '\n这是一行追加的内容。';
fs.appendFile(filePath, additionalContent, (err) => {
    if (err) {
        return console.error('追加写入文件时发生错误：', err);
    }
    console.log('内容追加成功！');
});

//2.1、读取文件

fs.readFile(filePath, 'utf8', (err, data) => {
    if (err) {
        return console.error('读取文件时发生错误：', err);
    }
    console.log('文件内容：');
    console.log(data);
});

//2.2、 读二进制文件
filePath = '1.jpg';

fs.readFile(filePath, (err, data) => {
    if (err) {
        return console.error('读取文件时发生错误：', err);
    }
    console.log('文件内容：');
    console.log(data);
});

//2.3 使用同步的方式读取文件

try {
    // 使用 fs.readFileSync 读取文件
    const data = fs.readFileSync(filePath, 'utf8');
    console.log('文件内容：');
    console.log(data);
} catch (err) {
    console.error('读取文件时发生错误：', err);
}
*/

//3.1、删除文件

fs.unlink(filePath, (err) => {
    if (err) {
        return console.error('删除文件时发生错误：', err);
    }
})

//3.2、创建目录

fs.mkdir('example', (err) => {
    if (err) {
        return console.error('创建目录时发生错误：', err);
    }
    console.log('目录创建成功！');
});

//3.3、删除目录

fs.rmdir('example', (err) => {
    if (err) {
        return console.error('删除目录时发生错误：', err);
    }
    console.log('目录删除成功！');
}); 

//4.1、获取文件信息

fs.stat(filePath, (err, stats) => {
    if (err) {
        return console.error('获取文件信息时发生错误：', err);
    }
    console.log('文件信息：');
    console.log(stats);
});

//4.2、获取目录信息

fs.stat('example', (err, stats) => {
    if (err) {
        return console.error('获取目录信息时发生错误：', err);
    }
    console.log('目录信息：');
    console.log(stats);
}); 

//5.1、重命名文件

fs.rename('example.txt', 'example2.txt', (err) => {
    if (err) {
        return console.error('重命名文件时发生错误：', err);
    }
    console.log('文件重命名成功！');
}); 

//5.2、复制文件

fs.copyFile('example2.txt', 'example3.txt', (err) => {
    if (err) {
        return console.error('复制文件时发生错误：', err);
    }
    console.log('文件复制成功！');
}); 

//6.1、遍历目录

fs.readdir('example', (err, files) => {
    if (err) {
        return console.error('遍历目录时发生错误：', err);
    }
    console.log('目录下的文件：');
    console.log(files);
}); 

//6.2、获取当前工作目录

fs.cwd((err, currentDir) => {
    if (err) {
        return console.error('获取当前工作目录时发生错误：', err);
    }
    console.log('当前工作目录：');
    console.log(currentDir);
}); 

//6.3、获取文件绝对路径

fs.realpath('example.txt', (err, absPath) => {
    if (err) {
        return console.error('获取文件绝对路径时发生错误：', err);
    }
    console.log('文件绝对路径：');
    console.log(absPath);
}); 








